The invention generally relates networks and, more particularly, the invention relates to forwarding data across a computer network.
The Internet utilizes many data forwarding devices (e.g., routers and switches) to forward data messages between network nodes. Among other things, such forwarding devices include both routing software and a corresponding routing hardware platform that cooperate to forward data messages to their appropriate destinations. Undesirably, routing software within current forwarding devices generally is preconfigured for use within one specific routing hardware platform only. In particular, a forwarding device (e.g., a router) manufactured by a given vendor has routing software that is specifically configured for use with no routing hardware platform other than that of the given vendor. Accordingly, such routing software from one vendor cannot be used on another vendor""s forwarding device.
In many such prior art data routing devices, routes between routing devices are stored in a router table that is managed by a router table manager. As is known in the art, routers typically share router table data with other routers in a network by utilizing an inter-router communication protocol, such as the well known Routing Information Protocol (xe2x80x9cRIPxe2x80x9d), or the Boarder Gateway Protocol (xe2x80x9cBGPxe2x80x9d). When sharing routing data, there are times when information relating to only one inter-router protocol is requested by another router. In such case, all data within the router table (i.e., data relating to other inter-router protocols) of the queried router typically is examined to retrieve the requested information. Querying of the router table in this manner, however, is time consuming and thus often reduces the efficiency of the router.
In accordance with one aspect of the invention, an apparatus and method of managing a router table that includes inter-router protocol information indexes the routing table to the inter-router protocol information. Such inter-router protocol information may include data identifying the name of protocol itself, or other related information. To that end, the routing information within the routing table first is indexed based upon the inter-routing protocol information to produce indexed routing information. A given routing information request then may be received. The given request requests both routing information from the routing table, and information relating to a given inter-router protocol. The indexed routing information then is accessed to retrieve the information requested in the request.
In preferred embodiments, the inter-router protocol information identifies a given router port and an inter-router protocol that is used by the given router port. The router table also may be in the control plane of a routing device. Routing data thus may be forwarded from the control plane to a forwarding plane routing table in the forwarding plane of the routing device. The forwarded routing data may be ranked. For example, the routing data may include a plurality of routes from the best route to the least best route.
The given routing information request may be forwarded from a given router. Accordingly, a reply message may be forwarded to the given router with the requested information. Specifically, the reply message may include the information retrieved from the router table. The routing information may be indexed by assigning one group of inter-router protocol information to each inter-router protocol in the router table. All of the assigned groups thus are included in the indexed routing information. The indexed routing information may be accessed by determining the inter-routing protocol requested in the given routing information request. The specific group of inter-router protocol information associated with the determined inter-router protocol then may be accessed by utilizing the determined protocol. The router table may include information relating to at least one of the RIP, BGP, and OSPF inter-router protocols.
Preferred embodiments of the invention are implemented as a computer program product having a computer usable medium with computer readable program code thereon. The computer readable code may be read and utilized by the computer system in accordance with conventional processes.